<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>ALLADYN Project homepage</title>
<link rel="stylesheet" href="../al.css" type="text/css">
<script src="../js/Alladyn.js" type="text/javascript"></script>
<script src="../js/subpaths.js" type="text/javascript"></script>
</head>

<body background="../img/bg.gif" onload="Alladyn();main()">
<div id="menu1" style="position:absolute; left:-100; top:290; z-index:3"><a href="contact.html"><img src="../img/m_feed_eng.gif" width="119" height="20"  border="0" alt=""/></a></div>
<div id="menu2" style="position:absolute; left:-100; top:130; z-index:3"><a href="desc.html"><img src="../img/m_desc_eng.gif" width="119" height="20"  border="0" alt=""/></a></div>
<div id="menu3" style="position:absolute; left:-100; top:170; z-index:3"><a href="gallery.html"><img src="../img/m_gallery_eng.gif" width="119" height="20"  border="0" alt=""/></a></div>
<div id="menu4" style="position:absolute; left:-130; top:210; z-index:3"><a href="docs.html"><img src="../img/m_docs_eng.gif" width="119" height="20"  border="0" alt=""/></a></div>
<div id="menu5" style="position:absolute; left:-100; top:250; z-index:3"><a href="down.html"><img src="../img/m_down_en.gif" width="119" height="20"  border="0" alt=""/></a></div>
<div id="menu6" style="position:absolute; left:-100; top:90; z-index:3"><a href="about.html"><img src="../img/m_about_eng.gif" width="119" height="20" border="0"  alt=""/></a></div>
<div id="blue1" style="position:absolute; left:-100; top:0; z-index:2"><img src="../img/blue_mid.gif" width="26" height="20" alt=""/></div>
<div id="blue2" style="position:absolute; left:-100; top:0; z-index:2"><img src="../img/blue_mid.gif" width="26" height="20" alt=""/></div>
<div id="blue3" style="position:absolute; left:-100; top:0; z-index:2"><img src="../img/blue_mid.gif" width="26" height="20" alt=""/></div>
<div id="blue4" style="position:absolute; left:-100; top:0; z-index:2"><img src="../img/blue_mid.gif" width="26" height="20" alt=""/></div>
<div id="blue5" style="position:absolute; left:-100; top:0; z-index:2"><img src="../img/blue_mid.gif" width="26" height="20" alt=""/></div>
<div id="blue6" style="position:absolute; left:-100; top:0; z-index:2"><img src="../img/blue_mid.gif" width="26" height="20" alt=""/></div>
<div id="alll" style="position:absolute; left:312; top:-50; z-index:8"><img src="../img/name_half1.gif" width="104" height="26"/></div>
<div id="allr" style="position:absolute; left:313; top:-50; z-index:8"><img src="../img/name_half2.gif" width="101" height="26"/></div>
<div id="poziom" style="position:absolute; left:0; top:-50; z-index:7"><img src="../img/blue_d.gif" width="780" height="34"/></div>
<div id="pozioms" style="position:absolute; left:0; top:-50; z-index:7"><img src="../img/blue_d.gif" width="780" height="18"/></div>
<div id="pozioms2" style="position:absolute; left:0; top:-20; z-index:7"><img src="../img/blue_mid.gif" width="780" height="6"/></div>
<div id="pozioms3" style="position:absolute; left:0; top:-20; z-index:7"><img src="../img/blue_mid.gif" width="780" height="3"/></div>
<div id="dhdsb" style="position: absolute; left: 13; top: -50; z-index: 10"><img src="../img/dhdsbig.gif" width="574" height="17"/></div>

<div id="title" style="position: absolute; left: 140; top: -50; z-index: 2"><img src="../img/t_desc_eng.gif" width="562" height="35"/></div>
<div id="content" class="content" style="position: absolute; left: 140; top: 190; width:562; z-index: 2"><p>
<span class="header">1. Cross-browsing - easy and comfortable.</span>
<br /><br />
Our main goal in Alladyn's development was the unification of methods used in work with DHTML in various browsers. Regardless of some functional similarities, most of the codes created by webmasters are the blocks intended to do the same thing, but dedicated separately for Netscape and Internet Explorer. The situation was additionally complicated because of the premiere of Navigator version 6, which is not a serious browser, but propably the solutions from this product will be used in eventual successors, and the model known from the NS4.x family will by definitely forgotten. All important differences between those browsers had been "fixed", so you don't have to write different code for each browser, you can write it once "for Alladyn".</p>
<p><br />
<span class="header">2. Structure.</span>
<br /><br />
All functions and layer properties are declared directly in the object that they refer to, so you don't have to create uncomfortable functions with the layer name as the parameter or use non effective methods with the eval functions. The layers had been grouped in one "root" object - vlay. You can access any layer by its ID, independently of how deep it is delved inside the document. Every layer has the style object, which groups the layer's CSS properties. Additional methods provided by Alladyn to use with those elements are ascribed directly to the layer object (they have the "v" (virtual) prefix in their name). 
</p><p><br />
<span class="header">3. Efficiency</span>
<br /><br />
In distinction to the earlier solutions, Alladyn doesn't have functions that "translate" the script actions for each browser. It exchanges/expands existing objects by modificating their references. This low-level access allows to avoid "buffered" functions, variable values tracking and guarantees that the operations performed on Alladyn objects are just as fast as those on the browser objects (de facto those are the same objects). In functional amplifications, wherever the code had to be separated for each browser, the code is instantly changed to the code specific for the particular browser. Because of that: objects don't have to carry the unused information (code for other browsers), and the deciding which part of the code to execute is skipped. Layers are equipped only with the information they need in the particular environment.<br />Alladyn is a "run and forget" library. It does a "revolution" in the document's DOM, creates a few specific and useful properties, and then finishes it job. Everything else is just using the environment created by Alladyn.
</p><p><br />
<span class="header">4. Functionality.</span>
<br /><br />
Alladyn introduces (as layer methods) a lot of functions that speed up operations on the document appearance, for example fast positioning <span class="code">vpos(x,y)</span>,
<span class="code">clip</span> or manipulating with the object opacity - <span class="code">vopacity</span> (new features in IE and NS6, but realized in a completely different way).
</p><p><br />
<span class="header">5. Animation module.</span>
<br /><br />
DHTML, as for something that have a magical word "Dynamic" in its name, is truly very static. All animations require the use of separate functions, and creating them is often very time - consuming (we omit the problems that could be caused by non-compatible models of different browsers). The animation object van allows you to easily define the movement paths and use all the properties of the traditional positioning, all CSS numeric values, clipping and other Alladyn amplifications, like the transparency mentioned before. Movement can be looped, reversed, stopped, and the animation path can be modificated at any time. Layers can be grouped in the animation groups, which can be executed at any time and synchronized. Like the single layers, groups also can be stopped and revived directly from the script level. End of movement (of a single layer or a whole group) can execute the JavaScript commands (these can be even other animation functions) defined by user. Animation groups, after the last element belonging to them finishes its movement, can be terminated (they don't do "empty runs" then) or they can wait for activation or adding a new object to the group. Restart of the animation that is currently running doesn't cause the intervals to thicken, because Alladyn controls the state of every element. 
</p><p><br />
<span class="header">6. Library size.</span>
<br /><br />
Alladyn has an incredible functionality: size ratio. All described functions and many more are realized with the 2kb (two kilobytes!) of code, which makes the module loading process almost unnoticed (plain text, very vulnerable to compression). You can't find many scripts that realize even a small percent of the Alladyn's tasks and that are smaller than it. Alladyn is so small because of the "packed" structure and effective algorithms. The abilities and speed of the library doesn't allow counting Alladyn into "little scripts" category, making the little size one more trump of the library. 
</p><p>&nbsp;</p>
</div>
</body>
</html>
